const fs = require('fs')
const { Buffer } = require('buffer');
const fsPromises = require('fs').promises

// 创建 /tmp/a/apple，不管 `/tmp` 和 /tmp/a 是否存在。
// fs.mkdir('./tmp/a/apple', { recursive: true }, (err) => {
//   if (err) console.log(err);
// });
// fs.mkdir('oldFile.txt', (err) => {
//   if (err) console.log(err);
// })

// fs.rename('oldFile.txt', 'newFile.txt', (err) => {
//   if (err) console.log(err);
// })

// fs.rmdir('./tmp', { maxRetries: 3, recursive: true },(err) => {
//   if (err) throw err;
//   console.log('Rmdir complete!');
// });
// //
// fs.rmdir('./tmp',(err) => {
//   if (err) throw err;
//   console.log('Rmdir complete!');
// });

// fs.readdir('./tmp', (err, files) => {
//   if (err) console.log(err);
//   console.log(files);
// })


// const data = new Uint8Array(Buffer.from('Hello Node.js'));
// fs.writeFile('message.txt', data, (err) => {
//   if (err) throw err;
//   console.log('The file has been saved!');
// });
//
// fs.appendFile('message.txt', '\ndata to append', (err) => {
//   if (err) throw err;
//   console.log('The "data to append" was appended to file!');
// });

// function closeFd(fd) {
//   fs.close(fd, (err) => {
//     if (err) throw err;
//   });
// }
//
// fs.open('message.txt', 'a', (err, fd) => {
//   if (err) throw err;
//
//   try {
//     fs.appendFile(fd, '\ndata to append', 'utf8', (err) => {
//       closeFd(fd);
//       if (err) throw err;
//     });
//   } catch (err) {
//     closeFd(fd);
//     throw err;
//   }
// });

// fs.unlink('message.txt', (err) => {
//   if (err) throw err;
//   console.log('message.txt was deleted');
// });
//
// fs.readFile('message.txt', { encoding: 'utf-8' },(err, data) => {
//   if (err) console.log(err);
//   console.log(data);
// });

// // 同步读取文件
// try {
//   const content = fs.readFileSync('message.txt', 'utf-8')
//   console.log(content)
//   console.log(0)
// } catch (e) {
//   console.log(e.message)
// }
// console.log(1)

// ;(async () => {
//   const result = await fsPromises.readFile('message.txt', 'utf-8')
//   console.log(result);
// })()

// function readDir(dir){
//   fs.readdir(dir,(err,content)→{
//     content.forEach((value,index)→{
//       let joinDir = ${dir}/${value}`
//       fs.stat(joinDir,(err,stats)→{ if(stats.isDirectory()){ readDir(joinDir)} else {
//         fs.readFile(joinDir,"utf-8',(err,content)
//         console.log content)
//       }
//         readDir('./)

// 读取目录内文件
// const readDirFiles = (dir) => {
//   fs.readdir(dir, (err, data) => {
//     data.forEach((item, index) => {
//       let joinDir = `${dir}/${item}`
//       fs.stat(joinDir, (err, stats) => {
//         if (stats.isDirectory()) {
//           readDirFiles(joinDir)
//         } else {
//           const content = fs.readFileSync(joinDir, 'utf-8')
//           console.log(content);
//         }
//       })
//     })
//   })
// }
//
// readDirFiles('./')


// fs.watchFile('./message.txt', (curr, prev) => {
//   console.log(`the current mtime is: ${curr.mtime}`);
//   console.log(`the previous mtime was: ${prev.mtime}`);
// });
//
//
// // watch 监测文件变化
// fs.watch('./message.txt', () => {
//   console.log(`message.txt has changed`);
// });

